// 加密和解密相关的业务

package core

import (
    "time"

    "math/rand"
    "crypto/sha256"
	"encoding/hex"

    "tokyo/common"
)


// 生成指定长度的随机字符串
func GetRandStr() string {
    myRand := rand.New(rand.NewSource(time.Now().UnixNano()))

    b := make([]rune, common.BriLen)
	for i := range b {
        randomIndex := myRand.Intn(len(common.EasyLetters))
		b[i] = common.EasyLetters[randomIndex]
	}

    brightText := string(b)
	return brightText
}

// 使用SHA256算法加密明文
func GetHashCode(brightText string) string {
    // 将明文转成二进制
    textByte := []byte(brightText)
	// 创建一个基于SHA256算法的hash.Hash接口的对象
	hash := sha256.New()
	// 输入二进制数据
	hash.Write(textByte)
	// 计算密文16进制
	darkTextHex := hash.Sum(nil)
	// 将16进制转换为字符串
	darkText := hex.EncodeToString(darkTextHex)
	// 返回密文
	return darkText
}
